#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

class MergeSort {
public:
  static void mergeSort(int a[], int left, int right) {
    if (left < right) {
      int mid = (right + left) >> 1;
      mergeSort(a, left, mid);
      mergeSort(a, mid + 1, right);
      merge(a, left, mid, right);
    }
  }

  static void merge(int a[], int left, int mid, int right) {
    int *b = new int[right - left + 1];
    int i = left, j = mid + 1, k = 0;
    while (i <= mid && j <= right) {
      if (a[i] <= a[j])
        b[k++] = a[i++];
      else
        b[k++] = a[j++];
    }
    while (i <= mid)
      b[k++] = a[i++];
    while (j <= right)
      b[k++] = a[j++];
    k = 0;
    for (int i = left; i <= right; i++) {
      a[i] = b[k++];
    }
    delete[] b;
  }
};

int main() {
  int a[100];
  for (int i = 0; i < 100; ++i) {
    a[i] = 100 - i;
  }
  MergeSort::mergeSort(a, 0, 99);
  for (auto &i : a) {
    cout << i << " ";
  }

  return 0;
}